System, method and medium calibrating gyrosensors of mobile robots

ABSTRACT

Provided are a system, method and medium calibrating a gyrosensor of a mobile robot. The system includes a camera to obtain image data of a fixed environment, a rotation angle calculation unit to calculate a plurality of angular velocities of a mobile robot based on an analysis of the image data, a gyrosensor to output a plurality of pieces of raw data according to rotation inertia of the mobile robot and a scale factor calculation unit to calculate a scale factor that indicates the relationship between the pieces of raw data and the angular velocities.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from Korean Patent Application No.10-2007-0033455 filed on Apr. 4, 2007 in the Korean IntellectualProperty Office, the disclosure of which is incorporated herein byreference in its entirety.

BACKGROUND

1. Field

One or more embodiments of the present invention relate to a mobilerobot, and more particularly, to system, method and medium calibrating agyrosensor (gyroscope sensor) of a mobile robot.

2. Description of the Related Art

Robots or robotic devices have been developed for a variety of tasksincluding industrial purposes and for factory automation. Robots havealso been used to perform tasks in extreme environments that humanbeings cannot access. Robotics has been rapidly developed as applied tothe cutting-edge space development industry. Recently, evenhuman-friendly household robots have been developed. In addition, robotshave been inserted into human bodies and used to heal delicate humantissue, which was at times not possible using conventional medicaldevices. Such developments have drawn a lot of attention to robotics asa cutting-edge field that may soon replace other cutting-edge fieldssuch as biotechnology and the information revolution initiated by theintroduction of the Internet.

In particular, household robots have played a major role in evolvingheavy industry-centered robotics, which is limited to the development ofindustrial robots, to light industry-centered robotics. A typicalexample of household robots includes cleaning robots. A cleaning robotincludes a driving unit moving the cleaning robot, a cleaning unit for acleaning operation, and a location measurement unit measuring thelocation of the cleaning robot or a user's remote control.

The most basic and important function of a mobile robot such as acleaning robot, is to accurately identify its location. Techniques forcalculating the absolute location of a mobile robot include a techniqueof implementing a beacon, which employs an ultrasonic sensor, at homeand a technique using an indoor global positioning system (GPS). Inaddition, a technique for calculating the relative location of a mobilerobot includes a technique for calculating the location of a mobilerobot by obtaining the rotational velocity (angular velocity) and linearvelocity of the mobile robot from an encoder and integrating therotational velocity and the rectilinear velocity, a technique forcalculating the location of a mobile robot by integrating an acceleratedvelocity, which is obtained from an acceleration sensor, twice and atechnique for calculating the direction of a mobile robot by integratinga rotation velocity output from a gyrosensor.

A gyrosensor measures angular velocity. If the measured angular velocityis integrated once with respect to time, an angle of direction of amobile robot can be measured. The gyrosensor calculating the location ofthe mobile robot may be resistant to its surrounding environment andimplemented as a stand-alone device. In order to obtain accuratemeasurement values using the gyrosensor, correcting the bias drift ofthe gyrosensor and calibration of the gyrosensor must also be performed.

A bias drift denotes a variation in the signal level of a gyrosensorover time when a mobile robot is not moving, and calibration denotesmapping a signal level of raw data obtained from the gyrosensor to areal physical value (angular velocity), that is, obtaining a scalefactor.

In order to correct the bias drift of a gyrosensor, a simple techniquefor correcting a current signal level using a signal level obtained whena mobile robot is not moving is generally used. However, no generaltechnique for calibrating the gyrosensor is available, other thantechniques using a data sheet or a rotary table.

The data sheet is a table reflecting the relationship between raw dataand angular velocity, which is intermittently created by a manufacturerof a gyrosensor after conducting experiments. However, since the datasheet is created under specific conditions, it fails to take intoconsideration the aging of the gyrosensor or a change in scale factoraccording to an external temperature change.

FIG. 1 illustrates a conventional mobile robot 10 to which aconventional calibration technique using a rotary table is applied. Themobile robot 10 includes a gyrosensor 11, a jig 13, and a processingmodule 12. The gyrosensor 11 measures rotary inertia and outputs rawdata. The jig 13 includes a rotary table rotating the mobile robot 10and measures the angular velocity of the rotary table. The processingmodule 12 calculates a scale factor of the raw data based on themeasured angular velocity and provides the scale factor to thegyrosensor 11.

Some of the drawbacks of the conventional mobile robot 10 are that itrequires an expensive jig 13 and that calibration cannot be performed inreal time while the mobile robot 10 is moving since the mobile robot 10has to be first loaded into the jig 13 before calibration.

SUMMARY

One or more embodiments of the present invention provide a system,method and medium calibrating a gyrosensor of a mobile robot withenhanced accuracy and reduced costs.

One or more embodiments of the present invention also provide a system,method and medium calibrating a gyrosensor of a mobile robot while themobile robot is moving.

Additional aspects and/or advantages will be set forth in part in thedescription which follows and, in part, will be apparent from thedescription, or may be learned by practice of the invention.

To achieve at least the above and/or other aspects and advantages,embodiments of the present invention include a system for calibrating agyrosensor of a mobile robot. The system includes a camera to obtainimage data of a fixed environment; a rotation angle calculation unit tocalculate a plurality of angular velocities of the mobile robot based onan analysis of the image data; the gyrosensor to output a plurality ofpieces of raw data according to rotation inertia of the mobile robot;and a scale factor calculation unit to calculate a scale factor thatindicates the relationship between the pieces of raw data and theangular velocities.

To achieve at least the above and/or other aspects and advantages,embodiments of the present invention include a system for calibrating agyrosensor of a mobile robot. The system includes a camera to obtainimage data of a fixed environment; a rotation angle calculation unit tocalculate a rotation angle of the mobile robot based on an analysis ofthe image data; an encoder to output encoder data according to rotationvelocity of a motor; a reference angular velocity calculation unit tocalculate encoder parameters using the calculated rotation angle andencoder data corresponding to the calculated rotation angle andobtaining a plurality of reference angular velocities by applying aplurality of pieces of encoder data to the calculated encoderparameters; the gyrosensor to output a plurality of pieces of raw dataaccording to rotation inertia of the mobile robot; and a scale factorcalculation unit to calculate a scale factor that indicates therelationship between the pieces of raw data and the reference p angularvelocities.

To achieve at least the above and/or other aspects and advantages,embodiments of the present invention include a method of calibrating agyrosensor of a mobile robot. The method includes obtaining image dataof a fixed environment; calculating a plurality of angular velocities ofthe mobile robot based on an analysis of the image data; and calculatinga scale factor that indicates the relationship between a plurality ofpieces of raw data according to rotation inertia of the mobile robot andthe angular velocities.

To achieve at least the above and/or other aspects and advantages,embodiments of the present invention include a method of calibrating agyrosensor of a mobile robot. The method includes obtaining image dataof a fixed environment; calculating a rotation angle of the mobile robotbased on an analysis of the image data; calculating encoder parametersusing the calculated rotation angle and encoder data corresponding tothe calculated rotation angle; obtaining a plurality of referenceangular velocities by applying a plurality of pieces of encoder data tothe calculated encoder parameters; and calculating a scale factor thatindicates the relationship between a plurality of pieces of raw dataaccording to rotation inertia of the mobile robot and the referenceangular velocities.

To achieve at least the above and/or other aspects and advantages,embodiments of the present invention include a method of calibrating agyrosensor of a mobile robot. The method includes rotating the mobilerobot in a predetermined velocity pattern; capturing image data at apredetermined location as the mobile robot rotates; estimating kinematicparameters of the mobile robot based on the captured image data;calculating a plurality of reference angular velocities in real time byapplying real-time encoder data to the estimated kinematic parametersand continuously providing the calculated reference angular velocities;and calibrating the gyrosensor based on the continuously providedreference angular velocities.

BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects and advantages will become apparent and morereadily appreciated from the following description of the embodiments,taken in conjunction with the accompanying drawings of which:

FIG. 1 illustrates a conventional mobile robot to which a conventionalcalibration method using a rotary table is applied;

FIG. 2 illustrates a calibration process, according to a firstembodiment of the present p invention;

FIG. 3 illustrates a mobile robot, according to a first embodiment ofthe present invention;

FIG. 4 explains a process of calculating a rotation angle using arotation calculation unit;

FIG. 5 illustrates a mobile robot which rotates using its two wheelswhile remaining in a fixed location;

FIG. 6 illustrates head angles calculated at three distinct times;

FIG. 7 illustrates the relationship between a gyro voltage and anangular velocity;

FIG. 8 illustrates a bias drift of a gyrosensor when the mobile robot isnot moving;

FIG. 9 illustrates an example of estimating a bias when the mobile robotis moving;

FIG. 10 illustrates an example of a weighted function over time;

FIG. 11 illustrates another example of the weighted function over time;

FIG. 12 illustrates the operation of a main processor, according to anembodiment of the present invention;

FIG. 13 illustrates the operation of a gyro processor, according to anembodiment of the present invention; and

FIG. 14 illustrates a mobile robot, according to a second embodiment ofthe present invention.

DETAILED DESCRIPTION OF EMBODIMENTS

Reference will now be made in detail to the embodiments, examples ofwhich are illustrated in the accompanying drawings, wherein likereference numerals refer to the like elements throughout. Theembodiments are described below to explain the present invention byreferring to the figures.

One or more embodiments of the present invention provide a method ofautomatically calculating a scale factor by obtaining a plurality ofreference angular velocities using an image of a fixed environment(e.g., a ceiling) and mapping the reference angular velocities to outputvalues of a gyrosensor. In this case, the method provided by embodimentsof the present invention may use a weighted least square (WLS) techniquein order to minimize the effect of the bias drift of the gyrosensor. Theaccuracy of the gyrosensor may be enhanced by appropriately selectingweights used in the WLS technique.

FIG. 2 illustrates a calibration process, according to an embodiment ofthe present invention.

Image data obtained after photographing a fixed environment, such as aceiling, may be used to estimate kinematic parameters of an encoder. Ifthe encoder is corrected based on estimates of the parameters, it mayprovide reference angular velocities in real time. The reference angularvelocities may be used for gyro calibration, and a scale factor of agyrosensor may be obtained, e.g., using the WLS technique. That is, inan embodiment, the encoder is corrected using image data, and gyrocalibration may be performed based on the reference angular velocitiescalculated by the corrected encoder.

FIG. 3 illustrates a mobile robot 100 or for a system calibrating agyrosensor 110, according to an embodiment of the present invention. Thesystem calibrating the gyrosensor 110 may be loaded into the mobilerobot 100 and may be substantially identical to the mobile robot 100.Therefore, the system and the mobile robot 100 will be unified andreferred to as the mobile robot 100.

The mobile robot 100 may include, for example, the gyrosensor 110, agyro processor 120, a main processor 130, a camera 140, a motor 151, andan encoder 152.

The gyrosensor 110 may output raw data according to rotary inertia ofthe mobile robot 100. One or more embodiments of the present inventionwill be described using a voltage signal (hereinafter, referred to as agyro voltage) as an example of the raw data.

The camera 140 may photograph a fixed environment, such as a ceiling ora wall, and provide image data obtained by photographing the fixedenvironment to the main processor 130. The camera 140 may include, forexample, a charge coupled device (CCD), a complementary metal oxidesemiconductor (CMOS), a contact image sensor (CIS), or any other imagesensor.

The motor 151 may power the mobile robot 100 to move. The motor 151 maybe any type of motor that can move the mobile robot 100, such as arotary motor, a step motor, or a linear motor. Two or more wheelsconnected to the motor 151 may be used in order to move the mobile robot100, although other techniques for moving the robot may equally be used.

The encoder 152 may be connected to the motor 151 and may sense therotation velocity of the motor 151. In so doing, the encoder 152 maymeasure a location change (i.e., a change between a previous locationand a current location of the mobile robot 100) and a direction changeof the mobile robot 100. The encoder 152 is generally designed tocommand the mobile robot 100 to change its location or direction andcontrol the movement of the mobile robot 100 when the mobile robot 100moves in response to the command. If the encoder 152 is used, thecurrent location and rotation angle of the mobile robot 100 may beobtained by integrating the distance traveled by the mobile robot 100and the direction in which the mobile robot 100 traveled. If nointegration error occurs, the mobile robot 100 may be localized usingthe encoder 152 only. However, although the encoder 152 is relativelyaccurate when used for a short period of time, it typically accumulateserrors at each sampling.

The main processor 130 may include, for example, a rotation anglecalculation unit 131, a reference angular velocity calculation unit 132,and a motor control unit 133.

The rotation angle calculation unit 131 may analyze a plurality ofpieces of image data and calculate the rotation angle or head angle ofthe mobile robot 100. The head angle generally denotes an angle betweena reference direction at absolute coordinates and a direction faced bythe front of the mobile robot 100. The rotation angle generally denotesan angle by which the mobile robot 100 is actually rotated for apredetermined period of time. Therefore, the rotation angle may berepresented as the difference between head angles at two points of time.

The detailed operation of the rotation angle calculation unit 131 willbe described later with reference to FIG. 4.

The motor control unit 133 may receive encoder data from the encoder 152and control the motor 151 using a control signal. The encoder datagenerally denotes raw data output from the encoder 152. For calibration,the motor control unit 133 may rotate the mobile robot 100 in apredetermined pattern.

The reference angular velocity calculation unit 132 may calculateencoder parameters using the calculated rotation angle and encoder datacorresponding to the calculated rotation angle. The reference angularvelocity calculation unit 132 may further calculate a plurality ofreference angular velocities using a plurality of pieces of real-timeencoder data to the calculated encoder parameters. The gyro processor120 may directly perform calibration using the rotation angle calculatedby the rotation angle calculation unit 131. However, since calculatingthe rotation angle using image data captured by the camera 140 typicallycannot be performed consecutively (for example, calculating the rotationangle whenever the mobile robot 100 rotates 90 degrees), the referenceangular velocities may be calculated using the encoder data.

The detailed process of calculating the reference angular velocitieswill be described later with reference to FIGS. 6 and 7.

The gyro processor 120 may calculate a scale factor based on therelationship between the reference angular velocities provided by themain processor 130 and the gyro voltages provided by the gyrosensor 110.Then, the gyro processor 120 may calculate the angular velocity of themobile robot 100 by applying a gyro voltage, which is input in realtime, to the calculated scale factor.

The gyro processor 120 may include, for example, a data storage unit121, a scale factor calculation unit 122, and an angular velocitycalculation unit 123.

The data storage unit 121 typically stores a plurality of pairs (datapairs) of gyro voltages and reference angular velocities at regular timeintervals.

The scale factor calculation unit 122 typically applies the WLStechnique to the stored data pairs and calculates a scale factorindicating the relationship between the gyro voltages and the referenceangular velocities. A detailed method of calculating a scale factor willbe described later with reference to FIGS. 7 through 9.

The angular velocity calculation unit 123 may apply a gyro voltage,which is input in real time, to the calculated scale factor andcalculate the angular velocity of the mobile robot 100 in real time. Ifthe scale factor calculation unit 122 updates the scale factor, theangular velocity calculation unit 123 may calculate the angular velocityof the mobile robot 100 using the updated scale factor.

FIG. 4 explains a process of calculating a rotation angle using therotation calculation unit 131.

The motor control unit 133 may rotate the mobile robot 100 with respectto a ground surface and a vertical axis when the mobile robot 100changes its direction or is not moving. It may be desirable for themobile robot 100 to rotate while remaining stationary in order tocalculate a rotation angle more accurately.

As illustrated in FIG. 5, the mobile robot 100 may rotate withoutmoving, e.g., by using two wheels 101 and 102. If the motor control unit133 controls the motor 151 to rotate the two wheels 101 and 102 at thesame velocity and in opposite directions, the mobile robot 100 rotateswith respect to a ground surface and a vertical axis 103.

When the mobile robot 100 rotates, an image captured by the camera 140is also rotated by the rotation angle of the mobile robot 100. Thecamera 140 may obtain image data of the image before being rotated andimage data of the image after being rotated and provide the obtainedimage data to the rotation angle calculation unit 131.

The rotation angle calculation unit 131 may compare the image beforebeing rotated to the image after being rotated while rotating the imagebefore being rotated and may find a rotation angle at which thedifference between the two images is a minimum. Since an image obtainedafter rotating the image by the found rotation angle cannot perfectlymatch the image after being rotated, a technique for quantifying thedifference between the two images may be required. An example of such atechnique is a Lucas-Kanade algorithm.

Referring to FIG. 4, the rotation angle calculation unit 131 may use acoordinate mapping block 40. The coordinate mapping block 40 typicallyobtains first and second polar coordinate images 43 and 44, in which anX-axis indicates angle and a Y-axis indicates distance, based on images45 and 46 captured by the camera 140. The origins of the first andsecond polar coordinate images 43 and 44 may be determined based onreference lines 41 and 42 of the images 45 and 46 before being mapped tocoordinates. The reference lines 41 and 42 may be arbitrarily determinedusing optical center points of the images 45 and 46 as end points. Theimage 46 obtained when the rotation of the mobile robot 100 isterminated may be delayed by a predetermined period of time compared tothe image 45 obtained when the mobile robot 100 received a command torotate.

The rotation angle calculation unit 131 typically compares the first andsecond polar coordinate images 43 and 44 while shifting the second polarcoordinate image 44 at regular angle intervals along a positivedirection of the X-axis. For example, if the X-axis has a range of 0 to360 degrees, the rotation angle calculation unit 131 may shift thesecond polar coordinate image 44 to the right at intervals of one degreeand compare an image obtained after shifting the second polar coordinateimage 44 to the first polar coordinate image 43. Since the X-axis of thesecond polar coordinate image 44 indicates angle, a portion of thesecond polar coordinate image 44, which exceeds 360 degrees, may berotated to zero degree of the X-axis.

In this way, whenever the second polar coordinate image 44 is shiftedalong the positive direction of the X axis at intervals of one degree, adifference value (hereinafter, referred to as an “image informationdifference value”) between information regarding the first polarcoordinate image 43 and information regarding the second polarcoordinate image 44, which corresponds at each of 360 degrees (0 to 359degrees) that are consecutive at intervals of one degree, may beobtained. In this case, the image information difference value may beobtained for each of the 360 degrees. In addition, the image informationdifference values may be respectively squared and then added. The sum ofthe squared image information difference values may be defined in anembodiment as a sum of squared distance (SSD).

The rotation angle calculation unit 131 may determine the rotation angleof an image when the SSD is at a minimum as the rotation angle of themobile robot 100.

FIGS. 6 and 7 explain the operation of the reference angular velocitycalculation unit 132. In particular, FIG. 6 is a graph illustrating headangles θ₁, θ₂ and θ₃ calculated by the rotation angle calculation unit131 at three times: t₁, t₂ and t₃.

A rotation angle Δθ_(en) generally measured by the encoder 152 may bemodeled as Equation (1) below. In Equation (1), k₁ and k₂ indicateproportionality constants.

$\begin{matrix}{{{\Delta\;\theta_{en}} = {\frac{{k_{1}\Delta\; U_{R}} - {k_{2}\Delta\; U_{L}}}{D} = {{\alpha_{1}\Delta\; U_{R}} - {\alpha_{2}\Delta\; U_{L}}}}},} & {{Equation}\mspace{14mu}(1)}\end{matrix}$

where ΔU_(L) indicates encoder displacement of a left wheel (which maybe calculated using the number of encoder pulses), and ΔU_(R) indicatesencoder displacement of a right wheel. In addition, D indicates thedistance between the right and left wheels, and α₁, and α₂ may bedefined as encoder parameters. That is, the encoder parameters α₁ and α₂may be defined as coefficients when a rotation angle calculated by therotation angle calculation unit 131 is represented as a linearcombination of respective encoder displacements of the wheels of themobile robot 100.

In fact, the encoder parameters α₁ and α₂ are not values that maygenerally be identified accurately because they vary according to thetraveling environment of the mobile robot 100. Therefore, even if thevalues of the encoder parameters α₁ and α₂ are provided to amanufacturer of the mobile robot 100, errors may inevitably occur whenthe mobile robot 100 actually travels.

Therefore, it may be necessary to calculate the encoder parameters α₁and α₂ by comparing the rotation angle calculated by the rotation anglecalculation unit 131 to the encoder displacement corresponding to thecalculated rotation angle. Equation (2) below shows a method ofcalculating the encoder parameters α₁ and α₂.Δθ₁₂=α₁ ΔU _(R,t12)−α₂ ΔU _(L,t12)Δθ₂₃=α₁ ΔU _(R,t23)−α₂ ΔU _(L,t23),  Equation 2

where Δθ₁₂ and Δθ₂₃ denote a rotation angle between the times t₁ and t₂and a rotation angle between the times t₂ and t₃, respectively.Therefore, Δθ₁₂ and Δθ₂₃ may be represented as θ₂-θ₁ and θ₃-θ₂,respectively. In addition, ΔU_(R,t12) and ΔU_(L,t12) respectivelyindicate encoder displacements of the right and left wheels between thetimes t₁ and t₂, and ΔU_(R,t23) and ΔU_(L,t23) respectively indicateencoder displacements of the right and left wheels between the times t₂and t₃.

The reference angular velocity calculation unit 132 may obtain theencoder parameters α₁ and α₂ using Equation (2), for example. Values ofthe encoder parameters α₁ and α₂ may be fixed until rotation anglesupdated by the rotation angle calculation unit 131 are provided.

Once the encoder parameters α₁ and α₂ are determined, the referenceangular velocity calculation unit 132 may calculate angular velocitiesby applying encoder data, which is input in real time from the motorcontrol unit 133, to the encoder parameters α₁ and α₂ and provides theangular velocities to the gyro processor 120. Since the angularvelocities obtained by the reference angular velocity calculation unit132 are used for calibration of the gyro processor 120, they may bedefined as ‘reference angular velocities.’

FIGS. 7 through 9 are graphs for explaining the operation of the scalefactor calculation unit 122.

In particular, FIG. 7 is a graph illustrating the relationship between agyro voltage ω_(z) and an angular velocity y. A process of calculating afunction f(ω_(z)) may be understood as a process of calculating a scalefactor (a calibration process).

Generally, the relationship between the gyro voltage ω_(z) and aphysically significant value, that is, the angular velocity y, may bemodeled as in Equation (3) below.y=ƒ(ω_(z))+B _(z) +M _(x)ω_(x) +M _(y)ω_(y) +B _(gx)α_(x) +B _(gy)α_(y)+B _(gz)α_(z),  Equation (3)

where f(ω_(z)) indicates a function in which a scale factor is appliedto a gyro voltage, and B_(z) indicates a bias term and a constant. Inaddition, M_(x)ω_(x)+M_(y)ω_(y) is a coupling term, andB_(gx)a_(x)+B_(gy)a_(y)+B_(gz)a_(z) is a gravity component term. Sinceterms excluding f(ω_(z)) and B_(z) hardly affect the angular velocity y,they may be omitted.

If the gyro voltage ω_(z) is represented by x, and f(x) is an n^(th)order polynomial, f(x) may be given by Equation (4).f(x)=α₀+α₁ x+ . . . +α _(n) x ^(n)  Equation (4)

Even when the mobile robot 100 is not moving, a bias drift (a variationin bias over time) typically occurs due to device characteristics of thegyrosensor 110.

FIG. 8 illustrates the bias drift of the gyrosensor 110 when the mobilerobot 100 is not moving. Generally, inexpensive gyrosensors suffer frommore serious bias drift. Since bias drift may significantly affect theaccuracy of a gyrosensor in calculating angular velocity, it must alsobe taken into consideration in the calibration process.

According to a general bias correction technique, a bias measured whenthe mobile robot 100 is not moving may be subtracted from a real-timegyro voltage. Since the bias constantly varies over time, it may bedesirable to update the bias whenever the mobile robot 100 stops. Whenthe mobile robot 100 is moving, an accurate value of the bias cannot bemeasured. Therefore, a bias measured when the mobile robot 100 is notmoving may be interpolated and used to estimate a bias when the mobilerobot 100 is moving.

FIG. 9 illustrates an example of estimating a bias when the mobile robot100 is moving. The mobile robot 100 is stationary until time t₁ andmoves between times t₁ and t_(m) in a pattern illustrated in FIG. 9.After the time t_(m), the mobile robot 100 stops again. In the meantime,a gyro voltage varies. In this case, a bias B₁ at the time t₁ and a biasB₂ at the time t₂ may have different values. Therefore, a period of time(t₁ through t_(m)) during which the mobile robot 100 moves may need tobe interpolated using the biases B₁ and B₂. Various functions(interpolation functions) may be used in this interpolation process.However, in one or more embodiments of the present invention, a linearfunction may be used as an interpolation function b(x). Once theinterpolation function b(x) is determined, a bias value b(t_(i)) at atime t_(i) in the period of time during which the mobile robot 100 movesmay be obtained. In this specification, b(t_(i)) will simply berepresented by b_(i).

As described above, after the bias is calculated when the mobile robot100 is moving, the calculated bias must be subtracted from the gyrovoltage. A value obtained after the subtraction, that is, the correctedgyro voltage, typically corresponds to a rotation angle which is aphysically significant value.

Therefore, in Equation (4), x may be understood as the corrected gyrovoltage. A corrected gyro voltage x_(i) and a residual R_(i) at a timeindex i may be defined by Equation (5).x _(i) =g _(i) −b _(i)R _(i) =[y _(i)−ƒ(x _(i))]²′  Equation (5)

where g_(i), y_(i) and b_(i) indicate a gyro voltage before beingcorrected, an angular velocity and a bias at the time index i. Inaddition, f(x_(i)) indicates a function whose coefficients must befinally determined, that is, an objective function.

Calculating coefficients a₀ through a_(n) of the function f(x_(i)) whichminimize the sum of residuals in the entire period of time (i=1 throughm) is typically a least square (LS) method. A set of the calculatedcoefficients a₀ through a_(n) may be a scale factor.

A scale factor may be determined using the simple LS method. However,considering that b_(i) is an estimated value and that the reliability ofb_(i) varies according to i, the accuracy of the gyrosensor 110 may beenhanced using the WLS technique.

It may be estimated from FIG. 9 that the bias interpolation functionb(x) is accurate at least between t₁ and t_(m) and that reliability maybe reduced as the distance from the period of time between t₁ and t_(m)increases. Therefore, it is reasonable to assign a lower weight as thedistance from a boundary (hereinafter, referred to as a boundary betweena mobile state and a stationary state), at which the mobile robot 100starts to move or stops moving, increases.

FIG. 10 illustrates an example of a weighted function w(x) over time. Inthe weighted function w (x) illustrated in FIG. 10, a weight is linearlyreduced as the distance from both boundaries t₁ and t_(m) increases. Theweighted function w(x) may have a curved form as illustrated in FIG. 11in addition to a linear form illustrated in FIG. 10. Whichever form theweighted function w (x) may have, the weight is reduced as the distancefrom the both boundaries t₁ and t_(m) increases.

When the WLS technique is used, a weighted sum R of residuals R_(i),that is, the sum of residuals of Equation (5) to which weights areapplied, may be defined by Equation (6).

$\begin{matrix}\begin{matrix}{R = {\sum\limits_{i = 1}^{m}{w_{i}R_{i}}}} \\{= {{w_{1}\left\lbrack {y_{1} - {f\left( x_{1} \right)}} \right\rbrack}^{2} + {w_{2}\left\lbrack {y_{2} - {f\left( x_{2} \right)}} \right\rbrack}^{2} + \ldots +}} \\{{w_{m}\left\lbrack {y_{m} - {f\left( x_{m} \right)}} \right\rbrack}^{2}}\end{matrix} & {{Equation}\mspace{14mu}(6)}\end{matrix}$

A scale factor A which minimizes the weighted sum R may be calculatedusing Equation (7). In addition, A, X and Y in Equation (7) are definedby Equation (8).A=(X ^(T) X)⁻¹ X ^(T) Y  Equation (7)

$\begin{matrix}{{A = \begin{bmatrix}a_{0} \\a_{1} \\\vdots \\a_{n}\end{bmatrix}}{{X = \begin{bmatrix}{\sum\limits_{i = 1}^{m}w_{i}} & {\sum\limits_{i = 1}^{m}{w_{i}x_{i}}} & \ldots & {\sum\limits_{i = 1}^{m}{w_{i}x_{i}^{n}}} \\{\sum\limits_{i = 1}^{m}{w_{i}x_{i}}} & {\sum\limits_{i = 1}^{m}{w_{i}x_{i}^{2}}} & \ldots & {\sum\limits_{i = 1}^{m}{w_{i}x_{i}^{n + 1}}} \\\vdots & \vdots & \ddots & \vdots \\{\sum\limits_{i = 1}^{m}{w_{i}x_{i}^{n}}} & {\sum\limits_{i = 1}^{m}{w_{i}x_{i}^{n + 1}}} & \ldots & {\sum\limits_{i = 1}^{m}{w_{i}x_{i}^{n + n}}}\end{bmatrix}},{Y = \begin{bmatrix}{\sum\limits_{i = 1}^{m}{w_{i}y_{i}}} \\{\sum\limits_{i = 1}^{m}{w_{i}x_{i}y_{i}}} \\\vdots \\{\sum\limits_{i = 1}^{m}{w_{i}x_{i}^{n}y_{i}}}\end{bmatrix}},}} & {{Equation}\mspace{14mu}(8)}\end{matrix}$

FIG. 12 illustrates the operation of the main processor 130. Referringto FIG. 12, the motor control unit 133 may transmit a control signal tothe motor 151 and rotate the mobile robot 100 in a predeterminedvelocity pattern in operation S21. The predetermined velocity patternmay be any pattern such as uniform velocity. The camera 140 may captureimage data at a predetermined location (for example, at intervals of 90degrees) when the mobile robot 100 rotates and may provide the capturedimage data to the rotation angle calculation unit 131.

The rotation angle calculation unit 131 may calculate a rotation anglebased on the received image data in operation S22. In this case, therotation angle calculation unit 131 may compare an image before beingrotated to an image after being rotated and may find a rotation anglewhich minimizes the difference between the two images.

While the mobile robot 100 rotates in a predetermined pattern, the motorcontrol unit 133 may store encoder pulses in a predetermined memory (notshown) in operation S23. The number of encoder pulses typically denotesthe number of rotations or encoder displacements of the wheels 101 and102 of the mobile robot 100 for a predetermined period of time.

The reference angular velocity calculation unit 132 may determineencoder parameters using the calculated rotation angle and the encoderdisplacements in operation S24 and obtain a plurality of referenceangular velocities by applying real-time encoder data to the encoderparameters in operation S25. The reference angular velocities may becontinuously provided to the gyro processor 120 until the rotation ofthe mobile robot 100 for calibration is terminated in operation S26.

FIG. 13 illustrates the operation of the gyro processor 120. Referringto FIG. 13, the data storage unit 121 may receive and store a pluralityof reference angular velocities provided by the main processor 130 whilethe mobile robot 100 is rotated for calibration in operation S31. Thedata storage unit 121 may also receive and store a gyro voltage from thegyrosensor 110 in operation S32. The data storage unit 121 may store aplurality of data pairs of reference angular velocities and gyrovoltages while the mobile robot is continuously rotated for calibration.

In order to calculate a scale factor, a bias generally needs to beidentified. When the mobile robot 100 stops moving (yes to a questionraised in operation S33), the scale factor calculation unit 122 mayreceive a gyro voltage and estimate the gyro voltage (or the mean ofgyro voltages when the mobile robot 100 is not moving) at that time as acurrent bias.

When the mobile robot 100 is rotating (no to the question raised inoperation S33), the scale factor calculation unit 122 may determine aweight for each time index in operation S35. Examples of determining theweight have been described above with reference to FIGS. 10 and 11.

The scale factor calculation unit 122 may calculate a scale factor usingthe WLS technique and based on the weight and the stored data pairs inoperation S36. Alternatively, the scale factor calculation unit 122 mayskip operation S35 and apply the simple LS method to the stored datapairs.

The calibration of the gyrosensor 110 may be completed through the aboveoperations. Later, the angular velocity calculation unit 123 maycalculate the angular velocity of the mobile robot 100 in real time byapplying an input gyro voltage to the calculated scale factor.

Table 1 below shows the experimental results of comparing the angularvelocity of the mobile robot 100, which may be calculated using a simpledata sheet of a gyrosensor, to that of the mobile robot 100 which may becalculated according to the first embodiment of the present invention.In this experiment, the mobile robot 100 is rotated ten times whileremaining stationary, and errors that occurred at each rotation arelisted in Table 1. A unit of an error is a degree.

TABLE 1 According to first Using data sheet embodiment 1 24.73 −0.17 223.33 −1.57 3 23.70 −1.20 4 23.61 −1.29 5 24.23 −0.68 6 −25.92 0.59 7−25.78 0.76 8 −25.81 0.74 9 −25.34 1.17 10 −25.63 0.91 Average 24.830.99

Referring to Table 1, automatic calibration according to the firstembodiment of the present invention significantly reduces errors overcalibration using a simple data sheet.

FIG. 14 illustrates a mobile robot 200, according to a second embodimentof the present invention. In the second embodiment of the presentinvention, a gyro processor 120 may directly perform calibration using arotation angle calculated by a rotation angle calculation unit 131.Therefore, the mobile robot 200, according to the second embodiment ofthe present invention has a simpler structure than the mobile robot 100of FIG. 3 according to the first embodiment of the present inventionsince the encoder 152 and the reference angular velocity calculationunit 132 may be omitted.

The second embodiment may be different from the first embodiment in thatit may have a longer sampling period (e.g., in units of 90 degrees) dueto the nature of calculating a head angle using a camera 240. That is, amotor control unit 233 may have to rotate the mobile robot 200 a numberof times in order to obtain sufficient sample data about a rotationangle, and the head angle typically must be calculated a number of timebased on image analysis. In the first embodiment, sufficient sample dataabout reference angular velocities may usually be obtained from minimumhead angle calculation. Therefore, it is easy to apply the WLStechnique. If sufficient sample data about the head angle may also beobtained in the second embodiment, a scale factor calculation unit 222may use the WLS technique without any problem. A rotation anglecalculation unit 231 may calculate a rotation angle for a predeterminedperiod of time. If the calculated rotation angle is divided by thepredetermined period of time, angular velocities may be calculated. Inthe second embodiment, the angular velocities may be provided to a gyroprocessor 220 as reference angular velocities.

Although the first and second embodiments may be different in how thereference angular velocities are provided, they are typically the samein the process of processing the reference angular velocities using thegyro processor 120 or 220. Therefore, their overlapping descriptions areomitted herein.

Each component described above with reference to FIGS. 3 and 14 may beimplemented as a software component, such as a task, a class, asubroutine, a process, an object, an execution thread or a programperformed in a predetermined region of a memory, or a hardwarecomponent, such as a Field Programmable Gate Array (FPGA) or ApplicationSpecific Integrated Circuit (ASIC). In addition, the components may becomposed of a combination of the software and hardware components. Thecomponents may be reside on a computer-readable storage medium or may bedistributed over a plurality of computers.

In addition to the above described embodiments, embodiments of thepresent invention can also be implemented through computer readablecode/instructions in/on a medium, e.g., a computer readable medium, tocontrol at least one processing element to implement any above describedembodiment. The medium can correspond to any medium/media permitting thestoring and/or transmission of the computer readable code.

The computer readable code can be recorded/transferred on a medium in avariety of ways, with examples of the medium including recording media,such as magnetic storage media (e.g., ROM, floppy disks, hard disks,etc.) and optical recording media (e.g., CD-ROMs, or DVDs), andtransmission media such as media carrying or including carrier waves, aswell as elements of the Internet, for example. Thus, the medium may besuch a defined and measurable structure including or carrying a signalor information, such as a device carrying a bitstream, for example,according to embodiments of the present invention. The media may also bea distributed network, so that the computer readable code isstored/transferred and executed in a distributed fashion. Still further,as only an example, the processing element could include a processor ora computer processor, and processing elements may be distributed and/orincluded in a single device.

As described above, according to one or more embodiments of the presentinvention, a mobile robot may rotate by itself without using anexpensive jig, thereby allowing automatic calibration of a gyrosensor.

In addition, according to one or more embodiments of the presentinvention, calibration performance may be enhanced using the WLStechnique, which takes into consideration the bias drift characteristicsof the gyrosensor.

Furthermore, according to one or more embodiments of the presentinvention, since real-time calibration is possible, a variation in scalefactor according to the aging and temperature changes of the gyrosensormay be adaptively dealt with.

Although a few embodiments have been shown and described, it would beappreciated by those skilled in the art that changes may be made inthese embodiments without departing from the principles and spirit ofthe invention, the scope of which is defined in the claims and theirequivalents.

What is claimed is:
 1. A system for calibrating a gyrosensor of a mobilerobot, the system comprising: a camera to obtain image data of a fixedenvironment; a rotation angle calculation unit to calculate a pluralityof angular velocities of the mobile robot based on an analysis of theimage data; the gyrosensor to output a plurality of pieces of raw dataaccording to rotation inertia of the mobile robot; and a scale factorcalculation unit to calculate a scale factor that indicates therelationship among raw data, a bias of the gyrosensor, and the angularvelocities, in order to calibrate the gyrosensor of the mobile robot,wherein when the mobile robot moves the bias of the gyrosensor isinterpolated between bias values at two positions where the mobile robotstops.
 2. The system of claim 1, wherein the fixed environment is aceiling.
 3. The system of claim 1, wherein the pieces of raw data areoutput voltages of the gyrosensor.
 4. The system of claim 1, furthercomprising a motor control unit to rotate the mobile robot in apredetermined angular velocity pattern.
 5. The system of claim 1,wherein the scale factor calculation unit calculates the scale factor byapplying a least square method to a plurality of data pairs of thepieces of raw data and the angular velocities.
 6. The system of claim 1,wherein a value input to an objective function used in the least squaremethod, is obtained by subtracting the interpolated bias from the rawdata.
 7. The system of claim 5, wherein the least square method is aweighted least square (WLS) method, and the scale factor calculationunit assigns a weight to each of the data pairs.
 8. The system of claim5, wherein the scale factor is a set of coefficients of a polynomial ofa predetermined order.
 9. The system of claim 7, wherein a greaterweight is assigned as a distance to a boundary between a mobile stateand a stationary state of the mobile robot increases.
 10. A system forcalibrating a gyrosensor of a mobile robot, the system comprising: acamera to obtain image data of a fixed environment; a rotation anglecalculation unit to calculate a rotation angle of the mobile robot basedon an analysis of the image data; an encoder to output encoder dataaccording to rotation velocity of a motor; a reference angular velocitycalculation unit to calculate encoder parameters using the calculatedrotation angle and encoder data corresponding to the calculated rotationangle and obtaining a plurality of reference angular velocities byapplying a plurality of pieces of encoder data to the calculated encoderparameters; the gyrosensor to output a plurality of pieces of raw dataaccording to rotation inertia of the mobile robot; and a scale factorcalculation unit to calculate a scale factor that indicates therelationship among raw data, a bias of the gyrosensor, and the referenceangular velocities, in order to calibrate the gyrosensor of the mobilerobot, wherein when the mobile robot moves the bias of the gyrosensor isinterpolated between bias values at two positions where the mobile robotstops.
 11. The system of claim 10, wherein the encoder parameters arecoefficients when the calculated rotation angle is represented as alinear combination of respective encoder displacements of wheels of themobile robot.
 12. The system of claim 10, wherein the fixed environmentis a ceiling.
 13. The system of claim 10, wherein the pieces of raw dataare output voltages of the gyrosensor.
 14. The system of claim 10,further comprising a motor control unit to rotate the mobile robot in apredetermined angular velocity pattern.
 15. The system of claim 10,wherein the scale factor calculation unit calculates the scale factor byapplying least square method to a plurality of data pairs of the piecesof raw data and the reference angular velocities.
 16. The system ofclaim 10, wherein a value input to an objective function used in theleast square method, is obtained by subtracting the interpolated biasfrom the raw data.
 17. The system of claim 15, wherein the least squaremethod is a weighted least square (WLS) method, and the scale factorcalculation unit assigns a weight to each of the data pairs.
 18. Thesystem of claim 15, wherein the scale factor is a set of coefficients ofa polynomial of a predetermined order.
 19. The system of claim 17,wherein a greater weight is assigned as a distance to a boundary betweena mobile state and a stationary state of the mobile robot increases.